Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

~Thiago Lara

Como mudar o CSS de um iframe a partir de uma página "pai"

Recommended Posts

Boa tarde povo,

 

Então to com uma dúvida aparentemente simples mas que já procurei em diversos lugares e não achei uma resolução pro meu caso... Eu precisaria mudar a folha de estilos de um iframe a partir de uma ação na página pai...

 

já tentei window.frames... document.frames... nada funfou..

 

alguém tem alguma ideia de como faço isso?

 

Obs: o conteúdo do meu iframe está no mesmo domínio (não estou tentando alterar nada externo.. que eu sei que isso não dá.. )

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

yup!

cara, a folha de estilos realmente é impossível alterar...

o que tu pode fazer é alterar o estilo de algum elemento específico!

 

<script type="type/javascript">
var seuIFrame = (document.getElementById("oIDdoSeuIFrame").contentWindow || document.getElementById("oIDdoSeuIFrame").contentDocument);

if (seuIFrame.document) {
	seuIFrame = seuIFrame.document;
}

// FINALMENTE, ACESSO AO DOM DO IFRAME

seuIFrame.body.style.backgroundColor = "#FF0000";
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Gibatronic, tendo acesso ao DOM é perfeitamente possível alterar as folhas de estilo

 

var css = document.createElement('link');
css.rel = 'stylesheet';
css.type = 'text/css';
css.media = 'all';
css.href = 'caminho/para/estilo.css';
seuIframe.getElementsByTagName('head')[0].appendChild(css);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguém sabe me dizer se é possível ter alguma definição CSS na minha página para quando ela seja incorporada via IFRAME, a folha de estilo tenha alterações especificas..?

 

sei lá, tipo:

 

iframe div#main { display: none; };

 

 

No meu exemplo isso somente funcionaria se a página tive-se sendo lida através de um iframe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

CSS estiliza elementos. inline frames não são elementos, são componentes incorporados. Seria a mesma coisa que aplicar CSS a animações flash, por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.